# -*- coding: utf-8 -*-
"""
@Time ： 2020/8/2 10:15
@Auth ： Mr. JJ_Cloud
@Company ：testingedu.com.cn
@Function ：Class4 Homework
"""

# 用while语句分别实现三个算法
# 选择排序
height = [155,187,172,163,160,166,182,173,165,159]
j = 0
while j < len(height) -1:
    m_h = 0
    i = 1
    while i < len(height)-j:
        if height[m_h] < height[i]:
            m_h = i
        i += 1
    j += 1
    height[m_h],height[len(height)-j] = height[len(height)-j],height[m_h]
print(height)

# 冒泡排序
height = [159,182,173,160,163,166,172,187,165,155]
j = 0
while j < len(height) -1:
    i = 1
    while i < len(height)-j:
        if height[i] < height [i-1]:
            height[i], height[i-1] = height[i-1], height[i]
        i += 1
    j += 1
print(height)

# 杨辉三角
# l1用来存储上一行的系数
l1 = [1]
#  l2用来存储下一行的系数
l2 = [1,1]
# yh用来存储杨辉三角的次数
yh = int(input("请输入杨辉的次方:"))

# 控制杨辉的次方
i = 0
while i < yh + 1:
    # 直接输出当前行
    # 输出前面没有内容的一半yh的长度
    for ii in range(i,yh):
        print("%2s" % ' ',end='')

    for ii in range(i + 1):
        print("%4s" % l1[ii],end='')
    print()
    # 通过循环得到下一行
    j = 0
    while j < i + 2:
        # 判断是第一个或是最后一个，它的值就是1
        if j == 0 or j == i + 1:
            l2[j] = 1
        else:
            # 不是边界的时候
            l2[j] = l1[j - 1] + l1[j]

        j += 1

    i += 1
    # 复制l2的元素到l1,l2就变成了上一行
    l1 = l2[0:]
    # l2将要存储的下一行，多一个系数
    l2.append(1)
